package ar.pegasus.clasificador.web.modulos;

import javax.ejb.EJB;
import javax.ejb.Remove;
import javax.ejb.Stateful;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

import ar.pegasus.clasificador.facade.api.local.BuscadorCircuitoFacadeLocal;
import ar.pegasus.clasificador.web.error.ErrorInesperadoException;
import ar.pegasus.clasificador.web.error.GestorErroresBean;
import ar.pegasus.framework.componentes.PException;

@Stateful
@Name("consultaCircuitosBean")
@Scope(ScopeType.CONVERSATION)
public class ConsultaCircuitosBean implements ConsultaCircuitos {

	@In(create=true)
	protected GestorErroresBean gestorErrores;

	@EJB
	private BuscadorCircuitoFacadeLocal buscadorCircuitoFacade;
	
	private ConsultaCircuitosViewModel viewModel;

	
	@Create
	@Begin(join = true)
	public void init() throws ErrorInesperadoException {
		this.viewModel = new ConsultaCircuitosViewModel();
		getViewModel().getParametros().setNombreSeccion("PUAN");
		getViewModel().getParametros().setLocalidad("DARREGUEIRA");
		getViewModel().getParametros().setDomicilio("San Martin 200");
	}

	@Remove
	@Destroy
	public void remove() {
	}

	public void buscar() throws ErrorInesperadoException {
		String nombreSeccion = getViewModel().getParametros().getNombreSeccion();
		String domicilio     = getViewModel().getParametros().getDomicilio();
		String localidad     = getViewModel().getParametros().getLocalidad();
		try {
			getViewModel().setCircuitoHallado(buscadorCircuitoFacade.buscarCircuito(nombreSeccion, domicilio, localidad));
		} catch (PException e) {
			gestorErrores.gestionarError(e, e.getMensajeError(), "/home.seam");
		} catch (Exception e){
			e.printStackTrace();
		}
	}

	public ConsultaCircuitosViewModel getViewModel() {
		return viewModel;
	}

}
